The CPF (Cadastro de Pessoas Físicas -- Natural Persons Register) is a number attributed by the Brazilian revenue agency (Receita Federal -- Federal Revenue) to both Brazilians and resident aliens who pay taxes or take part, direct or indirectly, in activities that provide revenue for any of the dozens of different types of taxes existing in Brazil. By means of this universal number the Federal Revenue computers can estimate the income tax that is due, thus directing fiscalisation.
Each individual has a number (which is the actual CPF), formerly printed on a paper document (see above) but now on a blue plastic card (credit-card-sized). Since the 70s the use of this number has been extended to a series of other purposes, making it one of the four most important documents for anyone living in Brazil (the others are the Identity Card, the Voting Registration and, for men, the Military Service Certificate). Without a CPF it is almost impossible to lead a normal life in Brazil.
The number printed on the document is an eleven-digit figure, of which the two last numbers are the result of an arithmetic operation on the nine previous ones (which means that any typing mistake will result in an invalid number). In the beginning the number used to be temporary but, as too many people used different numbers to evade tax, it is now permanent (though cancelled after some time after the person's death). To stop people from obtaining more than one registration, the registry checks for birthdate, mother's name and Voting Registration number. Because of the permanent character of the registry, one does not actually need to have the card (many people actually don't), but only to remember the number.
The possession of the CPF is not required, but it is absolutely a prerequisite for a series of operations like opening bank accounts, to get or renew a drivers license, buying or selling real estate, taking loans, applying for jobs (especially public ones), getting a passport or credit cards.
Though permanent, the validity of the CPF is not unchallenged: it will be pending after one year or cancelled by omission after two years without paying income tax or making the income tax declaration (for those who already paid the tax along the year). To prevent cancellation people who don't pay income tax (most of the population) formerly needed to send "exempt reports" to the Federal Revenue, but this feature is no longer necessary since 2008.
If the CPF is pending or cancelled by omission (instead of simply cancelled) it still can be regularized by delivering the income tax declaration and paying it, or simply by paying a regularization fee (for people who don't need to pay income tax).
The Federal Revenue has recently issued the "e-CPF", an electronic document that can be used as a nationwide, public-provided cryptographed signature key.
Pseudocode for CPF validation algorithm (modulus 11):
function ValidateCPF(cpf: int[11])
var v: int[2]
//Note: compute 1st verification digit.
v[1] := 10×cpf[1] + 9×cpf[2] + 8×cpf[3]
v[1] += 7×cpf[4] + 6×cpf[5] + 5×cpf[6]
v[1] += 4×cpf[7] + 3×cpf[8] + 2×cpf[9]
v[1] := 11 - v[1] mod 11
v[1] := 0 if v[1] ≥ 10
//Note: compute 2nd verification digit.
v[2] := 11×cpf[1] + 10×cpf[2] + 9×cpf[3]
v[2] += 8×cpf[4] + 7×cpf[5] + 6×cpf[6]
v[2] += 5×cpf[7] + 4×cpf[8] + 3×cpf[9]
v[2] += 2×v[1]
v[2] := 11 - v[2] mod 11
v[2] := 0 if v[2] ≥ 10
//Note: True if verification digits are as expected.
return v[1] = cpf[10] and v[2] = cpf[11]
|